package com.canaan.business.mapper.quality;

import java.util.List;
import com.canaan.business.domain.quality.QualityItem;
import org.apache.ibatis.annotations.Param;

/**
 * 质检项Mapper接口
 *
 * @author ruoyi
 * @date 2023-02-02
 */
public interface QualityItemMapper {
    /**
     * 查询质检项
     *
     * @param id 质检项主键
     * @return 质检项
     */
    public QualityItem selectQualityItemById(Long id);

    /**
     * 查询质检项列表
     *
     * @param qualityItem 质检项
     * @return 质检项集合
     */
    public List<QualityItem> selectQualityItemList(QualityItem qualityItem);

    /**
     * 新增质检项
     *
     * @param qualityItem 质检项
     * @return 结果
     */
    public int insertQualityItem(QualityItem qualityItem);

    /**
     * 批量新增质检项
     *
     * @param qualityItemList 质检项列表
     * @return 结果
     */
    public int batchInsertQualityItem(List<QualityItem> qualityItemList);

    /**
     * 修改质检项
     *
     * @param qualityItem 质检项
     * @return 结果
     */
    public int updateQualityItem(QualityItem qualityItem);

    /**
     * 批量修改质检项
     *
     * @param qualityItemList 质检项列表
     * @return 结果
     */
    public int batchUpdateQualityItem(List<QualityItem> qualityItemList);

    /**
     * 删除质检项
     *
     * @param id 质检项主键
     * @return 结果
     */
    public int deleteQualityItemById(Long id);

    /**
     * 批量删除质检项
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQualityItemByIds(Long[] ids);

    /**
     * 查询质检项
     *
     * @param no 编号
     * @return 质检项
     */
    public QualityItem selectQualityItemByNo(String no);

    /**
     * 批量删除质检项
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    public int deleteQualityItemByNos(String[] nos);

    /**
     * 删除质检项信息
     *
     * @param no 编号
     * @return 结果
     */
    public int deleteQualityItemByNo(String no);

    /**
     * 根据名称、id查询是否存在名称重复的数据
     *
     * @param name 名称
     * @param id id
     * @return 数量
     */
    public int checkNameCount(@Param("name") String name, @Param("id") Long id);

    /**
     * 查询所有已存在的质检项名称
     *
     */
    List<String> selectQualityItemNameList();

}
